package net.minecraft.client.main; import java.io.File; import java.net.Authenticator; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.Proxy.Type; import java.util.List; import joptsimple.ArgumentAcceptingOptionSpec; import joptsimple.NonOptionArgumentSpec; import joptsimple.OptionParser; import joptsimple.OptionSet; import net.minecraft.src.GameWindowListener; import net.minecraft.src.MainProxyAuthenticator; import net.minecraft.src.MainShutdownHook; import net.minecraft.src.Minecraft; import net.minecraft.src.Session; import org.spoutcraft.client.SpoutClient; import org.spoutcraft.client.io.DownloadAssets; public class Main { public static void main(String[] par0ArrayOfStr) { System.setProperty("java.net.preferIPv4Stack", "true"); OptionParser var1 = new OptionParser(); var1.allowsUnrecognizedOptions(); var1.accepts("demo"); var1.accepts("fullscreen"); ArgumentAcceptingOptionSpec var2 = var1.accepts("server").withRequiredArg(); ArgumentAcceptingOptionSpec var3 = var1.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(25565), new Integer[0]); ArgumentAcceptingOptionSpec var4 = var1.accepts("gameDir").withRequiredArg().ofType(File.class).defaultsTo(new File("."), new File[0]); ArgumentAcceptingOptionSpec var5 = var1.accepts("assetsDir").withRequiredArg().ofType(File.class); ArgumentAcceptingOptionSpec var6 = var1.accepts("resourcePackDir").withRequiredArg().ofType(File.class); ArgumentAcceptingOptionSpec var7 = var1.accepts("proxyHost").withRequiredArg(); ArgumentAcceptingOptionSpec var8 = var1.accepts("proxyPort").withRequiredArg().defaultsTo("8080", new String[0]).ofType(Integer.class); ArgumentAcceptingOptionSpec var9 = var1.accepts("proxyUser").withRequiredArg(); ArgumentAcceptingOptionSpec var10 = var1.accepts("proxyPass").withRequiredArg(); ArgumentAcceptingOptionSpec var11 = var1.accepts("username").withRequiredArg().defaultsTo("Player" + Minecraft.getSystemTime() % 1000L, new String[0]); ArgumentAcceptingOptionSpec var12 = var1.accepts("session").withRequiredArg().defaultsTo("Invalid Session ID", new String[0]); ArgumentAcceptingOptionSpec var13 = var1.accepts("version").withRequiredArg().required(); ArgumentAcceptingOptionSpec var14 = var1.accepts("width").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(854), new Integer[0]); ArgumentAcceptingOptionSpec var15 = var1.accepts("height").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(480), new Integer[0]); NonOptionArgumentSpec var16 = var1.nonOptions(); OptionSet var17 = var1.parse(par0ArrayOfStr); List var18 = var17.valuesOf(var16); String var19 = (String)var17.valueOf(var7); Proxy var20 = Proxy.NO_PROXY; if (var19 != null) { try { var20 = new Proxy(Type.SOCKS, new InetSocketAddress(var19, ((Integer)var17.valueOf(var8)).intValue())); } catch (Exception var34) { ; } } String var21 = (String)var17.valueOf(var9); String var22 = (String)var17.valueOf(var10); if (!var20.equals(Proxy.NO_PROXY) && func_110121_a(var21) && func_110121_a(var22)) { Authenticator.setDefault(new MainProxyAuthenticator(var21, var22)); } int var23 = ((Integer)var17.valueOf(var14)).intValue(); int var24 = ((Integer)var17.valueOf(var15)).intValue(); boolean var25 = var17.has("fullscreen"); boolean var26 = var17.has("demo"); String var27 = (String)var17.valueOf(var13); File var28 = (File)var17.valueOf(var4); File var29 = var17.has(var5) ? (File)var17.valueOf(var5) : new File(var28, "assets/"); File var30 = var17.has(var6) ? (File)var17.valueOf(var6) : new File(var28, "resourcepacks/"); Session var31 = new Session((String)var11.value(var17), (String)var12.value(var17)); Minecraft var32 = new Minecraft(var31, var23, var24, var25, var26, var28, var29, var30, var20, var27); String var33 = (String)var17.valueOf(var2); if (var33 != null) { var32.setServer(var33, ((Integer)var17.valueOf(var3)).intValue()); } Runtime.getRuntime().addShutdownHook(new MainShutdownHook()); if (!var18.isEmpty()) { System.out.println("Completely ignored arguments: " + var18); } Thread.currentThread().setName("Minecraft main thread"); DownloadAssets.importOldConfig(); var32.run(); } private static boolean func_110121_a(String par0Str) { return par0Str != null && !par0Str.isEmpty(); } }